<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Os1: ORB_SLAM2::Tracking Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Os1
   &#160;<span id="projectnumber">1</span>
   </div>
   <div id="projectbrief">OrbSlam2 documentado y modificado</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,'Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('class_o_r_b___s_l_a_m2_1_1_tracking.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="#pri-methods">Private Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="class_o_r_b___s_l_a_m2_1_1_tracking-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">ORB_SLAM2::Tracking Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Objeto único que se ejecuta en su propio Trhead, y se inicia con Run().  
 <a href="class_o_r_b___s_l_a_m2_1_1_tracking.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="_tracking_8h_source.html">Tracking.h</a>&gt;</code></p>
<div class="dynheader">
Collaboration diagram for ORB_SLAM2::Tracking:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="class_o_r_b___s_l_a_m2_1_1_tracking__coll__graph.svg" width="3147" height="1164"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a3995b5e23b910c6ee30b7fe21732fe36"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#a3995b5e23b910c6ee30b7fe21732fe36">eTrackingState</a> { <br />
&#160;&#160;<a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#a3995b5e23b910c6ee30b7fe21732fe36a95b60cb653a85df000eb93e0c3f00ea0">SYSTEM_NOT_READY</a> =-1, 
<a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#a3995b5e23b910c6ee30b7fe21732fe36a3a0bc2ff9eb062e5f00e8f0bac6f9783">NO_IMAGES_YET</a> =0, 
<a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#a3995b5e23b910c6ee30b7fe21732fe36a063250df8b0588a484883bc986defef7">NOT_INITIALIZED</a> =1, 
<a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#a3995b5e23b910c6ee30b7fe21732fe36af16e000dbb1927cf7f48e97b5e8e78dd">OK</a> =2, 
<br />
&#160;&#160;<a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#a3995b5e23b910c6ee30b7fe21732fe36affaf8b66b0b767f1eb2b0214b3f37fb2">LOST</a> =3
<br />
 }<tr class="memdesc:a3995b5e23b910c6ee30b7fe21732fe36"><td class="mdescLeft">&#160;</td><td class="mdescRight">Estado de tracking La variable de estado mState del objeto <a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html" title="Objeto único que se ejecuta en su propio Trhead, y se inicia con Run(). ">Tracking</a> tiene uno de estos valores.  <a href="class_o_r_b___s_l_a_m2_1_1_tracking.html#a3995b5e23b910c6ee30b7fe21732fe36">More...</a><br /></td></tr>
</td></tr>
<tr class="separator:a3995b5e23b910c6ee30b7fe21732fe36"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a7be9bebf51fda1413d253224cdacf7cd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#a7be9bebf51fda1413d253224cdacf7cd">ChangeCalibration</a> (const string &amp;strSettingPath)</td></tr>
<tr class="memdesc:a7be9bebf51fda1413d253224cdacf7cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Comando para cambiar la calibración.  <a href="#a7be9bebf51fda1413d253224cdacf7cd">More...</a><br /></td></tr>
<tr class="separator:a7be9bebf51fda1413d253224cdacf7cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad3de28bf6f7638c4da2248c9d595f394"><td class="memItemLeft" align="right" valign="top">cv::Mat&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#ad3de28bf6f7638c4da2248c9d595f394">GrabImageMonocular</a> (const cv::Mat &amp;im, const double &amp;timestamp)</td></tr>
<tr class="memdesc:ad3de28bf6f7638c4da2248c9d595f394"><td class="mdescLeft">&#160;</td><td class="mdescRight">Recibe una imagen para procesar, desde <a class="el" href="class_o_r_b___s_l_a_m2_1_1_system.html" title="System se instancia una única vez en main, en la variable SLAM. ">System</a>, en el mismo hilo.  <a href="#ad3de28bf6f7638c4da2248c9d595f394">More...</a><br /></td></tr>
<tr class="separator:ad3de28bf6f7638c4da2248c9d595f394"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abb047099ca3376f7aabc9a90c74aecfc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#abb047099ca3376f7aabc9a90c74aecfc">InformOnlyTracking</a> (const bool &amp;flag)</td></tr>
<tr class="memdesc:abb047099ca3376f7aabc9a90c74aecfc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Control de usuario para alternar entre tracking y mapping o solo tracking.  <a href="#abb047099ca3376f7aabc9a90c74aecfc">More...</a><br /></td></tr>
<tr class="separator:abb047099ca3376f7aabc9a90c74aecfc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a899967ca49b1c3446854ecce3873323c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#a899967ca49b1c3446854ecce3873323c">Reset</a> ()</td></tr>
<tr class="memdesc:a899967ca49b1c3446854ecce3873323c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reinicia el sistema.  <a href="#a899967ca49b1c3446854ecce3873323c">More...</a><br /></td></tr>
<tr class="separator:a899967ca49b1c3446854ecce3873323c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a95061551f3756408221df3b1a996b777"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#a95061551f3756408221df3b1a996b777">SetLocalMapper</a> (<a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html">LocalMapping</a> *pLocalMapper)</td></tr>
<tr class="memdesc:a95061551f3756408221df3b1a996b777"><td class="mdescLeft">&#160;</td><td class="mdescRight">Registra el objeto de <a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html" title="LocalMapping tiene una única instancia ejecutando el método Run en su propio thread. ">LocalMapping</a>.  <a href="#a95061551f3756408221df3b1a996b777">More...</a><br /></td></tr>
<tr class="separator:a95061551f3756408221df3b1a996b777"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a92b878e0559740646f8b1c635ac068dc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#a92b878e0559740646f8b1c635ac068dc">SetLoopClosing</a> (<a class="el" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html">LoopClosing</a> *pLoopClosing)</td></tr>
<tr class="memdesc:a92b878e0559740646f8b1c635ac068dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Registra el objeto de <a class="el" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html" title="Cierre de bucles. ">LoopClosing</a>.  <a href="#a92b878e0559740646f8b1c635ac068dc">More...</a><br /></td></tr>
<tr class="separator:a92b878e0559740646f8b1c635ac068dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac86c2461ac6cf3bec906759f4fbea15c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#ac86c2461ac6cf3bec906759f4fbea15c">SetViewer</a> (<a class="el" href="class_o_r_b___s_l_a_m2_1_1_viewer.html">Viewer</a> *pViewer)</td></tr>
<tr class="memdesc:ac86c2461ac6cf3bec906759f4fbea15c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Registra el objeto de visualización.  <a href="#ac86c2461ac6cf3bec906759f4fbea15c">More...</a><br /></td></tr>
<tr class="separator:ac86c2461ac6cf3bec906759f4fbea15c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a24f9d67b73420f419f792d2b32c69ac4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#a24f9d67b73420f419f792d2b32c69ac4">Tracking</a> (<a class="el" href="class_o_r_b___s_l_a_m2_1_1_system.html">System</a> *pSys, <a class="el" href="namespace_o_r_b___s_l_a_m2.html#a2fafba714858cab1bb18d438e2e83c5d">ORBVocabulary</a> *pVoc, <a class="el" href="class_o_r_b___s_l_a_m2_1_1_frame_drawer.html">FrameDrawer</a> *pFrameDrawer, <a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_drawer.html">MapDrawer</a> *pMapDrawer, <a class="el" href="class_o_r_b___s_l_a_m2_1_1_map.html">Map</a> *pMap, <a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame_database.html">KeyFrameDatabase</a> *pKFDB, const string &amp;strSettingPath, const int sensor, unsigned int cantidadCuadros=0)</td></tr>
<tr class="memdesc:a24f9d67b73420f419f792d2b32c69ac4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Una única instancia de este objeto se ejecuta en el thread principal.  <a href="#a24f9d67b73420f419f792d2b32c69ac4">More...</a><br /></td></tr>
<tr class="separator:a24f9d67b73420f419f792d2b32c69ac4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:ab87e93e3430d5a50dbca87c49955a666"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#ab87e93e3430d5a50dbca87c49955a666">camaraModo</a></td></tr>
<tr class="memdesc:ab87e93e3430d5a50dbca87c49955a666"><td class="mdescLeft">&#160;</td><td class="mdescRight">Modo de cámara.  <a href="#ab87e93e3430d5a50dbca87c49955a666">More...</a><br /></td></tr>
<tr class="separator:ab87e93e3430d5a50dbca87c49955a666"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae8c6db8ff320af10acacd5078a0801f6"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#ae8c6db8ff320af10acacd5078a0801f6">mbOnlyTracking</a></td></tr>
<tr class="memdesc:ae8c6db8ff320af10acacd5078a0801f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flag indicador de modo <a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html" title="Objeto único que se ejecuta en su propio Trhead, y se inicia con Run(). ">Tracking</a> (true) o tracking y mapping (false).  <a href="#ae8c6db8ff320af10acacd5078a0801f6">More...</a><br /></td></tr>
<tr class="separator:ae8c6db8ff320af10acacd5078a0801f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad21299ab1995c8fb7115bda57773d307"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_frame.html">Frame</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#ad21299ab1995c8fb7115bda57773d307">mCurrentFrame</a></td></tr>
<tr class="memdesc:ad21299ab1995c8fb7115bda57773d307"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cuadro actual.  <a href="#ad21299ab1995c8fb7115bda57773d307">More...</a><br /></td></tr>
<tr class="separator:ad21299ab1995c8fb7115bda57773d307"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af7ef78c9eed81f0701a1d12b3f377875"><td class="memItemLeft" align="right" valign="top">cv::Mat&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#af7ef78c9eed81f0701a1d12b3f377875">mImGray</a></td></tr>
<tr class="memdesc:af7ef78c9eed81f0701a1d12b3f377875"><td class="mdescLeft">&#160;</td><td class="mdescRight">Imagen del cuadro actual, recién convertida a grises.  <a href="#af7ef78c9eed81f0701a1d12b3f377875">More...</a><br /></td></tr>
<tr class="separator:af7ef78c9eed81f0701a1d12b3f377875"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a691ba65eb45f76829c8a2622f42ba446"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_frame.html">Frame</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#a691ba65eb45f76829c8a2622f42ba446">mInitialFrame</a></td></tr>
<tr class="memdesc:a691ba65eb45f76829c8a2622f42ba446"><td class="mdescLeft">&#160;</td><td class="mdescRight">Primer cuadro para la inicialización.  <a href="#a691ba65eb45f76829c8a2622f42ba446">More...</a><br /></td></tr>
<tr class="separator:a691ba65eb45f76829c8a2622f42ba446"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a98be1e579a7e9271449d079c4f3c8769"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#a3995b5e23b910c6ee30b7fe21732fe36">eTrackingState</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#a98be1e579a7e9271449d079c4f3c8769">mLastProcessedState</a></td></tr>
<tr class="memdesc:a98be1e579a7e9271449d079c4f3c8769"><td class="mdescLeft">&#160;</td><td class="mdescRight">Estado anterior al actual.  <a href="#a98be1e579a7e9271449d079c4f3c8769">More...</a><br /></td></tr>
<tr class="separator:a98be1e579a7e9271449d079c4f3c8769"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a83692a6e9626c3c11b329d3b0a35c2f1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html">LocalMapping</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#a83692a6e9626c3c11b329d3b0a35c2f1">mpLocalMapper</a></td></tr>
<tr class="memdesc:a83692a6e9626c3c11b329d3b0a35c2f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Público para que lo pueda ver <a class="el" href="class_o_r_b___s_l_a_m2_1_1_viewer.html" title="Viewer representa la interfaz de usuario. ">Viewer</a> al serializar mapas.  <a href="#a83692a6e9626c3c11b329d3b0a35c2f1">More...</a><br /></td></tr>
<tr class="separator:a83692a6e9626c3c11b329d3b0a35c2f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a18bffeb950dd18e5d74807cd9741c013"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#a18bffeb950dd18e5d74807cd9741c013">mSensor</a></td></tr>
<tr class="memdesc:a18bffeb950dd18e5d74807cd9741c013"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tipo de sensor: monocular, estéreo o rgbd.  <a href="#a18bffeb950dd18e5d74807cd9741c013">More...</a><br /></td></tr>
<tr class="separator:a18bffeb950dd18e5d74807cd9741c013"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a37cadc53a335fd802fed2fd9b24e93e1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#a3995b5e23b910c6ee30b7fe21732fe36">eTrackingState</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#a37cadc53a335fd802fed2fd9b24e93e1">mState</a></td></tr>
<tr class="memdesc:a37cadc53a335fd802fed2fd9b24e93e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Estado del autómata finito del tracking.  <a href="#a37cadc53a335fd802fed2fd9b24e93e1">More...</a><br /></td></tr>
<tr class="separator:a37cadc53a335fd802fed2fd9b24e93e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9ee7c26c1db845fef73c55ee0bb5c9f2"><td class="memItemLeft" align="right" valign="top">std::vector&lt; cv::Point2f &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#a9ee7c26c1db845fef73c55ee0bb5c9f2">mvbPrevMatched</a></td></tr>
<tr class="memdesc:a9ee7c26c1db845fef73c55ee0bb5c9f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Vector con los matches anteriores, para inicialización.  <a href="#a9ee7c26c1db845fef73c55ee0bb5c9f2">More...</a><br /></td></tr>
<tr class="separator:a9ee7c26c1db845fef73c55ee0bb5c9f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace08a986d9cbe3fe578c189242b94489"><td class="memItemLeft" align="right" valign="top">std::vector&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#ace08a986d9cbe3fe578c189242b94489">mvIniLastMatches</a></td></tr>
<tr class="memdesc:ace08a986d9cbe3fe578c189242b94489"><td class="mdescLeft">&#160;</td><td class="mdescRight">Agregado, imagen de entrada para visualización.  <a href="#ace08a986d9cbe3fe578c189242b94489">More...</a><br /></td></tr>
<tr class="separator:ace08a986d9cbe3fe578c189242b94489"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1c89fa1b3512238f15283857ed94c79a"><td class="memItemLeft" align="right" valign="top">std::vector&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#a1c89fa1b3512238f15283857ed94c79a">mvIniMatches</a></td></tr>
<tr class="memdesc:a1c89fa1b3512238f15283857ed94c79a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Vector con los matches de inicialización.  <a href="#a1c89fa1b3512238f15283857ed94c79a">More...</a><br /></td></tr>
<tr class="separator:a1c89fa1b3512238f15283857ed94c79a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adced44c2c047c18f3db6c7bfd7b289f0"><td class="memItemLeft" align="right" valign="top">std::vector&lt; cv::Point3f &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#adced44c2c047c18f3db6c7bfd7b289f0">mvIniP3D</a></td></tr>
<tr class="memdesc:adced44c2c047c18f3db6c7bfd7b289f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Vector con los puntos 3D iniciales.  <a href="#adced44c2c047c18f3db6c7bfd7b289f0">More...</a><br /></td></tr>
<tr class="separator:adced44c2c047c18f3db6c7bfd7b289f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3b4c19b9a377649cb89a4382320be28b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#a3b4c19b9a377649cb89a4382320be28b">param</a> = 100</td></tr>
<tr class="memdesc:a3b4c19b9a377649cb89a4382320be28b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Agregado: parámetro del trackbar de la ventana que muestra el cuadro actual.  <a href="#a3b4c19b9a377649cb89a4382320be28b">More...</a><br /></td></tr>
<tr class="separator:a3b4c19b9a377649cb89a4382320be28b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
<tr class="memitem:a5e0bb2d9fe720c4f4dc9eef57ad1f168"><td class="memItemLeft" align="right" valign="top">list&lt; cv::Mat &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#a5e0bb2d9fe720c4f4dc9eef57ad1f168">mlRelativeFramePoses</a></td></tr>
<tr class="memdesc:a5e0bb2d9fe720c4f4dc9eef57ad1f168"><td class="mdescLeft">&#160;</td><td class="mdescRight">Listas para registrar la trayectoria de la cámara, para guardarla al terminar la aplicación.  <a href="#a5e0bb2d9fe720c4f4dc9eef57ad1f168">More...</a><br /></td></tr>
<tr class="separator:a5e0bb2d9fe720c4f4dc9eef57ad1f168"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad214f6515a2cf4996d0c7765d9de73a8"><td class="memItemLeft" align="right" valign="top">list&lt; <a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame.html">KeyFrame</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#ad214f6515a2cf4996d0c7765d9de73a8">mlpReferences</a></td></tr>
<tr class="separator:ad214f6515a2cf4996d0c7765d9de73a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae867f703e70c18b7ff0798191807cb4d"><td class="memItemLeft" align="right" valign="top">list&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#ae867f703e70c18b7ff0798191807cb4d">mlFrameTimes</a></td></tr>
<tr class="separator:ae867f703e70c18b7ff0798191807cb4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aca83e100e47cfcc0cba1bcfac72764cc"><td class="memItemLeft" align="right" valign="top">list&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#aca83e100e47cfcc0cba1bcfac72764cc">mlbLost</a></td></tr>
<tr class="separator:aca83e100e47cfcc0cba1bcfac72764cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a2ca003d3234b2e8444f70dcd2132126f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#a2ca003d3234b2e8444f70dcd2132126f">CheckReplacedInLastFrame</a> ()</td></tr>
<tr class="memdesc:a2ca003d3234b2e8444f70dcd2132126f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Revisa y actualiza mLastFrame por las dudas que el mapa local haya cambiado.  <a href="#a2ca003d3234b2e8444f70dcd2132126f">More...</a><br /></td></tr>
<tr class="separator:a2ca003d3234b2e8444f70dcd2132126f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afeb077c81cd700d779348b80698086e8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#afeb077c81cd700d779348b80698086e8">CreateInitialMapMonocular</a> ()</td></tr>
<tr class="memdesc:afeb077c81cd700d779348b80698086e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Crea el mapa inicial.  <a href="#afeb077c81cd700d779348b80698086e8">More...</a><br /></td></tr>
<tr class="separator:afeb077c81cd700d779348b80698086e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8c7fb6c4b1f952524512023df690bf4d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#a8c7fb6c4b1f952524512023df690bf4d">CreateNewKeyFrame</a> ()</td></tr>
<tr class="memdesc:a8c7fb6c4b1f952524512023df690bf4d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Crea un keyframe a partir del frame actual.  <a href="#a8c7fb6c4b1f952524512023df690bf4d">More...</a><br /></td></tr>
<tr class="separator:a8c7fb6c4b1f952524512023df690bf4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7e81c68bb6ced27fcbfa2edec38ef6e0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#a7e81c68bb6ced27fcbfa2edec38ef6e0">MonocularInitialization</a> ()</td></tr>
<tr class="memdesc:a7e81c68bb6ced27fcbfa2edec38ef6e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Incovado por el autómata <a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#af1f2c9c533642d8c33854540e90d1918" title="Es la máquina de estados del tracking. ">Track()</a> para intentar inicializar.  <a href="#a7e81c68bb6ced27fcbfa2edec38ef6e0">More...</a><br /></td></tr>
<tr class="separator:a7e81c68bb6ced27fcbfa2edec38ef6e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc013c5a20bc6beb772b96a875b19216"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#afc013c5a20bc6beb772b96a875b19216">NeedNewKeyFrame</a> ()</td></tr>
<tr class="memdesc:afc013c5a20bc6beb772b96a875b19216"><td class="mdescLeft">&#160;</td><td class="mdescRight">Informa si es momento de insertar un nuevo <a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame.html" title="Cuadro clave, keyframe. ">KeyFrame</a> en el mapa.  <a href="#afc013c5a20bc6beb772b96a875b19216">More...</a><br /></td></tr>
<tr class="separator:afc013c5a20bc6beb772b96a875b19216"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acd4ea9e7097bed16428a4b78fe4b6a67"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#acd4ea9e7097bed16428a4b78fe4b6a67">Relocalization</a> ()</td></tr>
<tr class="memdesc:acd4ea9e7097bed16428a4b78fe4b6a67"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dispara una relocalización.  <a href="#acd4ea9e7097bed16428a4b78fe4b6a67">More...</a><br /></td></tr>
<tr class="separator:acd4ea9e7097bed16428a4b78fe4b6a67"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a451c0e5372c24645c7634fcebc8fa847"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#a451c0e5372c24645c7634fcebc8fa847">SearchLocalPoints</a> ()</td></tr>
<tr class="memdesc:a451c0e5372c24645c7634fcebc8fa847"><td class="mdescLeft">&#160;</td><td class="mdescRight">Invocado por TrackLocalMap.  <a href="#a451c0e5372c24645c7634fcebc8fa847">More...</a><br /></td></tr>
<tr class="separator:a451c0e5372c24645c7634fcebc8fa847"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af1f2c9c533642d8c33854540e90d1918"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#af1f2c9c533642d8c33854540e90d1918">Track</a> ()</td></tr>
<tr class="memdesc:af1f2c9c533642d8c33854540e90d1918"><td class="mdescLeft">&#160;</td><td class="mdescRight">Es la máquina de estados del tracking.  <a href="#af1f2c9c533642d8c33854540e90d1918">More...</a><br /></td></tr>
<tr class="separator:af1f2c9c533642d8c33854540e90d1918"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af670c614f4e10d58c9f7aad9865b5c08"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#af670c614f4e10d58c9f7aad9865b5c08">TrackLocalMap</a> ()</td></tr>
<tr class="memdesc:af670c614f4e10d58c9f7aad9865b5c08"><td class="mdescLeft">&#160;</td><td class="mdescRight">Actualiza el mapa y realiza el tracking.  <a href="#af670c614f4e10d58c9f7aad9865b5c08">More...</a><br /></td></tr>
<tr class="separator:af670c614f4e10d58c9f7aad9865b5c08"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a737c5409c93844353561a0fe724ed1c2"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#a737c5409c93844353561a0fe724ed1c2">TrackReferenceKeyFrame</a> ()</td></tr>
<tr class="memdesc:a737c5409c93844353561a0fe724ed1c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Una manera de hacer tracking, alternativa a TrackWithMotionModel.  <a href="#a737c5409c93844353561a0fe724ed1c2">More...</a><br /></td></tr>
<tr class="separator:a737c5409c93844353561a0fe724ed1c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aca19f1d69b30a6c6e49281d422ac8298"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#aca19f1d69b30a6c6e49281d422ac8298">TrackWithMotionModel</a> ()</td></tr>
<tr class="memdesc:aca19f1d69b30a6c6e49281d422ac8298"><td class="mdescLeft">&#160;</td><td class="mdescRight">SfM.  <a href="#aca19f1d69b30a6c6e49281d422ac8298">More...</a><br /></td></tr>
<tr class="separator:aca19f1d69b30a6c6e49281d422ac8298"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa84a20277d5bd022b527d79a58830bc5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#aa84a20277d5bd022b527d79a58830bc5">UpdateLastFrame</a> ()</td></tr>
<tr class="memdesc:aa84a20277d5bd022b527d79a58830bc5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calcula la pose de mLastFrame respecto del keyframe de referencia, y la registra en mLastFrame con .SetPose.  <a href="#aa84a20277d5bd022b527d79a58830bc5">More...</a><br /></td></tr>
<tr class="separator:aa84a20277d5bd022b527d79a58830bc5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a42bed56bbbe8282eb77733e7168d8599"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#a42bed56bbbe8282eb77733e7168d8599">UpdateLocalKeyFrames</a> ()</td></tr>
<tr class="separator:a42bed56bbbe8282eb77733e7168d8599"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a22723e9972c18a888dd51a82eec27b0a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#a22723e9972c18a888dd51a82eec27b0a">UpdateLocalMap</a> ()</td></tr>
<tr class="memdesc:a22723e9972c18a888dd51a82eec27b0a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Actualiza los puntos y keyframes en el mapa local.  <a href="#a22723e9972c18a888dd51a82eec27b0a">More...</a><br /></td></tr>
<tr class="separator:a22723e9972c18a888dd51a82eec27b0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a25843575116bf18c065d6cc7645f5b26"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#a25843575116bf18c065d6cc7645f5b26">UpdateLocalPoints</a> ()</td></tr>
<tr class="memdesc:a25843575116bf18c065d6cc7645f5b26"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rehace la lista de puntos del mapa local.  <a href="#a25843575116bf18c065d6cc7645f5b26">More...</a><br /></td></tr>
<tr class="separator:a25843575116bf18c065d6cc7645f5b26"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:a8de5f87734670485f6b6097b14dd1fcb"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#a8de5f87734670485f6b6097b14dd1fcb">mbf</a></td></tr>
<tr class="memdesc:a8de5f87734670485f6b6097b14dd1fcb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Leído del archivo de configuración, parte de los parámetros de calibración, pasado al constructor de <a class="el" href="class_o_r_b___s_l_a_m2_1_1_frame.html" title="Frame representa un cuadro, una imagen, con los puntos singulares detectados. ">Frame</a>.  <a href="#a8de5f87734670485f6b6097b14dd1fcb">More...</a><br /></td></tr>
<tr class="separator:a8de5f87734670485f6b6097b14dd1fcb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a44ad79261b565797bdf53d503f6defca"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#a44ad79261b565797bdf53d503f6defca">mbVO</a></td></tr>
<tr class="memdesc:a44ad79261b565797bdf53d503f6defca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flag de odometría visual.  <a href="#a44ad79261b565797bdf53d503f6defca">More...</a><br /></td></tr>
<tr class="separator:a44ad79261b565797bdf53d503f6defca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7df0851817d1a1345324c196b6a79c3a"><td class="memItemLeft" align="right" valign="top">cv::Mat&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#a7df0851817d1a1345324c196b6a79c3a">mDistCoef</a></td></tr>
<tr class="memdesc:a7df0851817d1a1345324c196b6a79c3a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Coeficientes de distorsión del modelo pihole estándar de OpenCV.  <a href="#a7df0851817d1a1345324c196b6a79c3a">More...</a><br /></td></tr>
<tr class="separator:a7df0851817d1a1345324c196b6a79c3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6926ae3c49c09bf9f402d13900740405"><td class="memItemLeft" align="right" valign="top">cv::Mat&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#a6926ae3c49c09bf9f402d13900740405">mK</a></td></tr>
<tr class="memdesc:a6926ae3c49c09bf9f402d13900740405"><td class="mdescLeft">&#160;</td><td class="mdescRight">Matriz intrínseca, de cámara, de calibración K.  <a href="#a6926ae3c49c09bf9f402d13900740405">More...</a><br /></td></tr>
<tr class="separator:a6926ae3c49c09bf9f402d13900740405"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8a96fe16c7ed5c29d8714c1af036f1da"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#a8a96fe16c7ed5c29d8714c1af036f1da">mMaxFrames</a></td></tr>
<tr class="separator:a8a96fe16c7ed5c29d8714c1af036f1da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a53369ce9ebf152a1a76e93445821e395"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#a53369ce9ebf152a1a76e93445821e395">mMinFrames</a></td></tr>
<tr class="separator:a53369ce9ebf152a1a76e93445821e395"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc0759bfbd1d8d83e86c9d677a35429b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_frame_drawer.html">FrameDrawer</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#afc0759bfbd1d8d83e86c9d677a35429b">mpFrameDrawer</a></td></tr>
<tr class="separator:afc0759bfbd1d8d83e86c9d677a35429b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8d25e231894baf85a6a48ab57ce0ddb3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_o_r_bextractor.html">ORBextractor</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#a8d25e231894baf85a6a48ab57ce0ddb3">mpIniORBextractor</a></td></tr>
<tr class="separator:a8d25e231894baf85a6a48ab57ce0ddb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9194420033fe0d556053685844a534be"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_initializer.html">Initializer</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#a9194420033fe0d556053685844a534be">mpInitializer</a></td></tr>
<tr class="memdesc:a9194420033fe0d556053685844a534be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Inicializador, responsable de la triangulación de los primeros puntos del mapa.  <a href="#a9194420033fe0d556053685844a534be">More...</a><br /></td></tr>
<tr class="separator:a9194420033fe0d556053685844a534be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ee7e13527e3bb18adb24bc511fd5800"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame_database.html">KeyFrameDatabase</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#a0ee7e13527e3bb18adb24bc511fd5800">mpKeyFrameDB</a></td></tr>
<tr class="separator:a0ee7e13527e3bb18adb24bc511fd5800"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aed45d56071fcbba3db0552726c897e0d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html">LoopClosing</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#aed45d56071fcbba3db0552726c897e0d">mpLoopClosing</a></td></tr>
<tr class="separator:aed45d56071fcbba3db0552726c897e0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc0b5ae59012946da8238d84a331d72c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map.html">Map</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#acc0b5ae59012946da8238d84a331d72c">mpMap</a></td></tr>
<tr class="memdesc:acc0b5ae59012946da8238d84a331d72c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mapa general.  <a href="#acc0b5ae59012946da8238d84a331d72c">More...</a><br /></td></tr>
<tr class="separator:acc0b5ae59012946da8238d84a331d72c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3fb103211ff7b984910943f0975d5ceb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_drawer.html">MapDrawer</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#a3fb103211ff7b984910943f0975d5ceb">mpMapDrawer</a></td></tr>
<tr class="separator:a3fb103211ff7b984910943f0975d5ceb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abd41b4020d02e8ca272263964ae400b2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_o_r_bextractor.html">ORBextractor</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#abd41b4020d02e8ca272263964ae400b2">mpORBextractorLeft</a></td></tr>
<tr class="memdesc:abd41b4020d02e8ca272263964ae400b2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Extractores de cámara.  <a href="#abd41b4020d02e8ca272263964ae400b2">More...</a><br /></td></tr>
<tr class="separator:abd41b4020d02e8ca272263964ae400b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a79358a4f15c71538e37e874a5646f43e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespace_o_r_b___s_l_a_m2.html#a2fafba714858cab1bb18d438e2e83c5d">ORBVocabulary</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#a79358a4f15c71538e37e874a5646f43e">mpORBVocabulary</a></td></tr>
<tr class="separator:a79358a4f15c71538e37e874a5646f43e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ade9676c7c26eb653beddaa05b37ecc08"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame.html">KeyFrame</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#ade9676c7c26eb653beddaa05b37ecc08">mpReferenceKF</a></td></tr>
<tr class="separator:ade9676c7c26eb653beddaa05b37ecc08"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1ab3d15e53005d5147620b0ee37c33ed"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_system.html">System</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#a1ab3d15e53005d5147620b0ee37c33ed">mpSystem</a></td></tr>
<tr class="memdesc:a1ab3d15e53005d5147620b0ee37c33ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sistema.  <a href="#a1ab3d15e53005d5147620b0ee37c33ed">More...</a><br /></td></tr>
<tr class="separator:a1ab3d15e53005d5147620b0ee37c33ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4952ab24b73effdbba6266e2fb26548e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_viewer.html">Viewer</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#a4952ab24b73effdbba6266e2fb26548e">mpViewer</a></td></tr>
<tr class="separator:a4952ab24b73effdbba6266e2fb26548e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a46ade9f7ec2c89544ae77f2906000b3a"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame.html">KeyFrame</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#a46ade9f7ec2c89544ae77f2906000b3a">mvpLocalKeyFrames</a></td></tr>
<tr class="memdesc:a46ade9f7ec2c89544ae77f2906000b3a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Lista del keyframes locales, parte del mapa local.  <a href="#a46ade9f7ec2c89544ae77f2906000b3a">More...</a><br /></td></tr>
<tr class="separator:a46ade9f7ec2c89544ae77f2906000b3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a89074acc520094ba0d0fc7f4c0f8cf09"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html">MapPoint</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#a89074acc520094ba0d0fc7f4c0f8cf09">mvpLocalMapPoints</a></td></tr>
<tr class="memdesc:a89074acc520094ba0d0fc7f4c0f8cf09"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mapa local, lista de puntos 3D.  <a href="#a89074acc520094ba0d0fc7f4c0f8cf09">More...</a><br /></td></tr>
<tr class="separator:a89074acc520094ba0d0fc7f4c0f8cf09"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
Private Member Functions</h2></td></tr>
<tr class="memitem:ad443fff776a9a75b4ab9c55cd368abdf"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#ad443fff776a9a75b4ab9c55cd368abdf">_Track_full</a> ()</td></tr>
<tr class="separator:ad443fff776a9a75b4ab9c55cd368abdf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a282ba88f5f306725ab6e60e533721ff1"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#a282ba88f5f306725ab6e60e533721ff1">_Track_loc_only</a> ()</td></tr>
<tr class="separator:a282ba88f5f306725ab6e60e533721ff1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr class="memitem:a01522faf940cc80402f0750b0d90ecf2"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#a01522faf940cc80402f0750b0d90ecf2">mbRGB</a></td></tr>
<tr class="separator:a01522faf940cc80402f0750b0d90ecf2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4f0a80cfb3ddadcb43d7745d15ac9f35"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_frame.html">Frame</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#a4f0a80cfb3ddadcb43d7745d15ac9f35">mLastFrame</a></td></tr>
<tr class="separator:a4f0a80cfb3ddadcb43d7745d15ac9f35"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aadc2690944688adbebeef4a60bdf3cad"><td class="memItemLeft" align="right" valign="top">list&lt; <a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html">MapPoint</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#aadc2690944688adbebeef4a60bdf3cad">mlpTemporalPoints</a></td></tr>
<tr class="separator:aadc2690944688adbebeef4a60bdf3cad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abe5270bc94032722923f43efe7a7bac6"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#abe5270bc94032722923f43efe7a7bac6">mnLastKeyFrameId</a></td></tr>
<tr class="separator:abe5270bc94032722923f43efe7a7bac6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af95975f569dcc3e378c556b8199604b2"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#af95975f569dcc3e378c556b8199604b2">mnLastRelocFrameId</a></td></tr>
<tr class="separator:af95975f569dcc3e378c556b8199604b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad58b66226a6345581227560aae2ea72f"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#ad58b66226a6345581227560aae2ea72f">mnMatchesInliers</a></td></tr>
<tr class="memdesc:ad58b66226a6345581227560aae2ea72f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sólo para RGB-D.  <a href="#ad58b66226a6345581227560aae2ea72f">More...</a><br /></td></tr>
<tr class="separator:ad58b66226a6345581227560aae2ea72f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa833de1f76843c64dbcc1631c12de7fd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame.html">KeyFrame</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#aa833de1f76843c64dbcc1631c12de7fd">mpLastKeyFrame</a></td></tr>
<tr class="separator:aa833de1f76843c64dbcc1631c12de7fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aded3124bdf36aba88411327024a7c2d3"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#aded3124bdf36aba88411327024a7c2d3">mThDepth</a></td></tr>
<tr class="memdesc:aded3124bdf36aba88411327024a7c2d3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sólo para estéreo, el código actual no lo usa, sólo se pasa entre constructores a <a class="el" href="class_o_r_b___s_l_a_m2_1_1_frame.html" title="Frame representa un cuadro, una imagen, con los puntos singulares detectados. ">Frame</a> y a <a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame.html" title="Cuadro clave, keyframe. ">KeyFrame</a>.  <a href="#aded3124bdf36aba88411327024a7c2d3">More...</a><br /></td></tr>
<tr class="separator:aded3124bdf36aba88411327024a7c2d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac2283c13ccf08207c90a6a163d8dbe3c"><td class="memItemLeft" align="right" valign="top">cv::Mat&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#ac2283c13ccf08207c90a6a163d8dbe3c">mVelocity</a></td></tr>
<tr class="memdesc:ac2283c13ccf08207c90a6a163d8dbe3c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rototraslación del modelo de movimiento.  <a href="#ac2283c13ccf08207c90a6a163d8dbe3c">More...</a><br /></td></tr>
<tr class="separator:ac2283c13ccf08207c90a6a163d8dbe3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Objeto único que se ejecuta en su propio Trhead, y se inicia con Run(). </p>
<p>Este objeto empaqueta el código que realiza el tracking y se ejecuta en su thread único y exclusivo. .Run() cuelga el listener GrabImage(), que recibe mensajes con imágenes desde el nodo cámara vía ros.</p>
<p>Por su naturaleza asincrónica, GrabImage implementa un autómata finito que conduce el hilo por los distintos estados de inicialización, y de relocalización cuando se pierde el tracking. Su variable de estado es mState.</p>
<p>En cada ciclo (cada vez que recibe una imagen) crea una instancia de <a class="el" href="class_o_r_b___s_l_a_m2_1_1_frame.html" title="Frame representa un cuadro, una imagen, con los puntos singulares detectados. ">Frame</a>, donde guarda los resultados de la detección de puntos, extracción de descriptores, macheo, vínculo con los puntos 3D, etc.</p>
<p>En el thread de <a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html" title="Objeto único que se ejecuta en su propio Trhead, y se inicia con Run(). ">Tracking</a> se realiza la triangulación inicial, el SfM, y se generan los KeyFrames. También se dispara la relocalización cuando se la necesita.</p>
<p>Construye el mapa local en mvpLocalKeyFrames, un vector de KeyFrames.</p>
<p>Convención de prefijos de miembros: Las propiedades adoptan los siguientes prefijos:</p><ul>
<li>m: miembro</li>
<li>mp: miembro puntero</li>
<li>mvp: miembro vector de punteros</li>
<li>mb: miembro booleano</li>
<li>mn: ? se usa en algunos miembros int.</li>
</ul>
<p>La mayoría de los métodos son de uso interno, y muchos de ellos se invocan por única vez, en el sentido que su código no necesita estar en un método, pero está así para mejorar la legibilidad.</p>
<p>Sólo otros tres objetos utilizan métodos de tracking:</p><ul>
<li>FramePublisher</li>
<li><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html" title="LocalMapping tiene una única instancia ejecutando el método Run en su propio thread. ">LocalMapping</a></li>
<li><a class="el" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html" title="Cierre de bucles. ">LoopClosing</a></li>
</ul>
<p>FramPublisher consulta los estados de <a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html" title="Objeto único que se ejecuta en su propio Trhead, y se inicia con Run(). ">Tracking</a> mState y mLastState, utiliza su enum de estados, y en Update() toma datos del mCurrentFrame, mInitialFrame y mvIniMatches.</p>
<p><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#a164b3d0a2a75daba006469ea8aca8a63" title="Registra el tracker, la única instancia en el sistema. ">LocalMapping::SetTracker</a> y <a class="el" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a20bce54d19c979511043d7c109aa741a" title="Registra el tracker del sistema. ">LoopClosing::SetTracker</a> guardan el tracking en mpTracking, y no lo utilizan.</p>
<p>La mayoría de los métodos del objeto son partes de un único algoritmo, dividido para mejor comprensión. Estos métodos son invocados solo desde otro método del objeto, y no desde afuera.</p>
<p>La siguiente secuencia de métodos corresponden a un único algoritmo que podría estar en una única función: </p><pre class="fragment">GrabImageMonocular: recibe la imagen y la convierte a grises
    Track: ejecuta el autómata finito
    MonocularInitialization: busca maches para triangular con PnP
            CreateInitialMapMonocular: crea el mapa inicial con los puntos triangulados
        TrackWithMotionModel: tracking normal, busca macheos según el modelo de movimiento
        UpdateLastFrame: trivial
        TrackLocalMap: agrega puntos nuevos al mapa local
            SearchLocalPoints: actualiza la "visibilidad" (el conteo de vistas) de los puntos, y filtra puntos que ya están en el mapa
            UpdateLocalMap: actualiza el mapa local: puntos y keyframes
                UpdateLocalMapPoints: actualiza el mapa local con los puntos nuevos
                UpdateLocalKeyFrames: actualiza los keyframes locales con los puntos nuevos
        NeedNewKeyFrame: evalúa si hace falta un nuevo keyframe
        CreateNewKeyFrame: crea y registra un nuevo keyframe a partir del frame actual
        TrackReferenceKeyFrame: tracking alternativo, basado en BoW, para cuando falla el tracking normal
        CheckReplacedInLastFrame: actualiza puntos en lastKeyFrame que pudieron haber cambiado por BA, culling u otros motivos
        Relocalization: se invoca si el sistema perdió tracking</pre> </div><h2 class="groupheader">Member Enumeration Documentation</h2>
<a id="a3995b5e23b910c6ee30b7fe21732fe36"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#a3995b5e23b910c6ee30b7fe21732fe36">ORB_SLAM2::Tracking::eTrackingState</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Estado de tracking La variable de estado mState del objeto <a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html" title="Objeto único que se ejecuta en su propio Trhead, y se inicia con Run(). ">Tracking</a> tiene uno de estos valores. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a3995b5e23b910c6ee30b7fe21732fe36a95b60cb653a85df000eb93e0c3f00ea0"></a>SYSTEM_NOT_READY&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a id="a3995b5e23b910c6ee30b7fe21732fe36a3a0bc2ff9eb062e5f00e8f0bac6f9783"></a>NO_IMAGES_YET&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a id="a3995b5e23b910c6ee30b7fe21732fe36a063250df8b0588a484883bc986defef7"></a>NOT_INITIALIZED&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a id="a3995b5e23b910c6ee30b7fe21732fe36af16e000dbb1927cf7f48e97b5e8e78dd"></a>OK&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a id="a3995b5e23b910c6ee30b7fe21732fe36affaf8b66b0b767f1eb2b0214b3f37fb2"></a>LOST&#160;</td><td class="fielddoc">
</td></tr>
</table>

</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a24f9d67b73420f419f792d2b32c69ac4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ORB_SLAM2::Tracking::Tracking </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_system.html">System</a> *&#160;</td>
          <td class="paramname"><em>pSys</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespace_o_r_b___s_l_a_m2.html#a2fafba714858cab1bb18d438e2e83c5d">ORBVocabulary</a> *&#160;</td>
          <td class="paramname"><em>pVoc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_frame_drawer.html">FrameDrawer</a> *&#160;</td>
          <td class="paramname"><em>pFrameDrawer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_drawer.html">MapDrawer</a> *&#160;</td>
          <td class="paramname"><em>pMapDrawer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map.html">Map</a> *&#160;</td>
          <td class="paramname"><em>pMap</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame_database.html">KeyFrameDatabase</a> *&#160;</td>
          <td class="paramname"><em>pKFDB</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const string &amp;&#160;</td>
          <td class="paramname"><em>strSettingPath</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&#160;</td>
          <td class="paramname"><em>sensor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>cantidadCuadros</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Una única instancia de este objeto se ejecuta en el thread principal. </p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="ad443fff776a9a75b4ab9c55cd368abdf"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool ORB_SLAM2::Tracking::_Track_full </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a282ba88f5f306725ab6e60e533721ff1"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool ORB_SLAM2::Tracking::_Track_loc_only </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a7be9bebf51fda1413d253224cdacf7cd"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ORB_SLAM2::Tracking::ChangeCalibration </td>
          <td>(</td>
          <td class="paramtype">const string &amp;&#160;</td>
          <td class="paramname"><em>strSettingPath</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Comando para cambiar la calibración. </p>
<p>No usado en esta implementación, pero permitiría cambiar de cámara, o usar una cámara sobre el mapa relevado por otra. Sin embargo las profundidades de visualización de los puntos 3D todavía están muy vinculados a la distancia focal, y todavía no son compatibles con distancias diferentes. Carga nuevos parámetros de calibración del archivo de configuración.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">strSettingPath</td><td>Nombre del archivo de configuración. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a2ca003d3234b2e8444f70dcd2132126f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ORB_SLAM2::Tracking::CheckReplacedInLastFrame </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Revisa y actualiza mLastFrame por las dudas que el mapa local haya cambiado. </p>
<p>Recorre todos los puntos del mapa registrados en el cuadro (los puntos vistos desde ese cuadro y macheados), y si alguno fue reemplazado (se sabe con punto-&gt;GetReplaced) se lo actualiza.</p>
<p>Invocado sólo desde Track. </p>

</div>
</div>
<a id="afeb077c81cd700d779348b80698086e8"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ORB_SLAM2::Tracking::CreateInitialMapMonocular </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Crea el mapa inicial. </p>
<p>Toma la rotación Rcw y traslación tcw argumentos para asumir la primer pose de la cámara. Crea dos KeyFrames (inicial y actual) a partir de los cuadros inicial y actual. Computa Bag of Words en ambos keyframes. Agrega los keyframes al mapa. Recorre los puntos macheados, los computa como puntos del mapa para agregarlos. Esto significa que les asocia los keyframes que los observan, sus normales y profundidades, y sus descriptores distintivos. Luego realiza un primer bundle adjustment.</p>
<p>Invocado sólo desde MonocularInitialization. </p>

</div>
</div>
<a id="a8c7fb6c4b1f952524512023df690bf4d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ORB_SLAM2::Tracking::CreateNewKeyFrame </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Crea un keyframe a partir del frame actual. </p>
<p>Crea un <a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame.html" title="Cuadro clave, keyframe. ">KeyFrame</a> usando mCurrentFrame, y lo inserta en el mapa con mpLocalMapper. Lo nombra LasKeyFrame.InsertKeyFrame, y registra su mnid en mnLastKeyFrameId.</p>
<p>Este método se invoca desde un único punto del código, en <a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#af1f2c9c533642d8c33854540e90d1918" title="Es la máquina de estados del tracking. ">Track()</a>, luego de preguntar <a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#afc013c5a20bc6beb772b96a875b19216" title="Informa si es momento de insertar un nuevo KeyFrame en el mapa. ">NeedNewKeyFrame()</a>. </p>

</div>
</div>
<a id="ad3de28bf6f7638c4da2248c9d595f394"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">cv::Mat ORB_SLAM2::Tracking::GrabImageMonocular </td>
          <td>(</td>
          <td class="paramtype">const cv::Mat &amp;&#160;</td>
          <td class="paramname"><em>im</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double &amp;&#160;</td>
          <td class="paramname"><em>timestamp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Recibe una imagen para procesar, desde <a class="el" href="class_o_r_b___s_l_a_m2_1_1_system.html" title="System se instancia una única vez en main, en la variable SLAM. ">System</a>, en el mismo hilo. </p>
<p>Convierte la imagen a monocromática, sabiendo de antemano por el archivo de configuración si es RGB o BGR. Genera mCurrentFrame. En modo normal usa mpORBextractorLeft (Right se usa solamente en estéreo). En el modo de inicialización (NOT_INITIALIZED o NO_IMAGES_YET) usa mpIniORBextractor, que es igual al anterior pero con el doble de puntos singulares requeridos. A continuación invoca <a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#af1f2c9c533642d8c33854540e90d1918" title="Es la máquina de estados del tracking. ">Track()</a>, la máquina de estados. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">im</td><td>Nueva imagen a procesar. </td></tr>
    <tr><td class="paramname">timestamp</td><td>Marca temporal puramente para registro. ORB-SLAM2 no la utiliza, sólo la registra en el frame. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>La pose de la cámara.</dd></dl>
<p>GrabImageMonocular se invoca exclusivamente desde <a class="el" href="class_o_r_b___s_l_a_m2_1_1_system.html#a0408659bafa31c4d0722ccd032fb9430" title="Procesa una imagen de la cámara. ">System::TrackMonocular</a>, que a su vez es invocada exclusivamente desde el bucle principal en main.</p>
<p>El algoritmo disparado desde TrackMonocular es extenso y se dividió en varios métodos de <a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html" title="Objeto único que se ejecuta en su propio Trhead, y se inicia con Run(). ">Tracking</a> solamente para simplificar la lectura, pues cada uno de estos métodos son invocados desde un único punto.</p>
<p>La siguiente secuencia de métodos corresponden a un único algoritmo que podría estar en una única función:</p>
<ul>
<li>GrabImageMonocular</li>
<li>Track, continuación de la anterior</li>
<li>MonocularInitialization CreateInitialMapMonocular</li>
<li>TrackWithMotionModel</li>
<li>UpdateLastFrame TrackLocalMap SearchLocalPoints UpdateLocalMap UpdateLocalMapPoints UpdateLocalKeyFrames NeedNewKeyFrame CreateNewKeyFrame TrackReferenceKeyFrame CheckReplacedInLastFrame Relocalization </li>
</ul>

</div>
</div>
<a id="abb047099ca3376f7aabc9a90c74aecfc"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ORB_SLAM2::Tracking::InformOnlyTracking </td>
          <td>(</td>
          <td class="paramtype">const bool &amp;&#160;</td>
          <td class="paramname"><em>flag</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Control de usuario para alternar entre tracking y mapping o solo tracking. </p>

</div>
</div>
<a id="a7e81c68bb6ced27fcbfa2edec38ef6e0"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ORB_SLAM2::Tracking::MonocularInitialization </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Incovado por el autómata <a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#af1f2c9c533642d8c33854540e90d1918" title="Es la máquina de estados del tracking. ">Track()</a> para intentar inicializar. </p>
<p>En la primer llamada (!mpInitializer) designa el frame actual como inicial. En la segunda llamada (mpInitializer) utiliza el frame actual como el segundo, machea e intenta PnP. Requiere 100 macheos. Cambié la constante 100 por minMatches, que toma su valor de la propiedad param, controlada por trackbar. </p>

</div>
</div>
<a id="afc013c5a20bc6beb772b96a875b19216"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool ORB_SLAM2::Tracking::NeedNewKeyFrame </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Informa si es momento de insertar un nuevo <a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame.html" title="Cuadro clave, keyframe. ">KeyFrame</a> en el mapa. </p>
<p>Este método implementa la inteligencia para elegir los frames ideales y mantener pequeño el mapa. Para insertar un nuevo <a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame.html" title="Cuadro clave, keyframe. ">KeyFrame</a> se tienen que dar alguna de estas condiciones:</p><ul>
<li>Que hayan pasado al menos mMinFrames desde el último <a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame.html" title="Cuadro clave, keyframe. ">KeyFrame</a>, y que el frame actual tenga menos del 90% de los puntos del <a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame.html" title="Cuadro clave, keyframe. ">KeyFrame</a> de referencia y al menos 15 inliers.</li>
<li>Que hayan pasado mMaxFrames desde el último <a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame.html" title="Cuadro clave, keyframe. ">KeyFrame</a>.</li>
</ul>
<p>No se considera insertar <a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame.html" title="Cuadro clave, keyframe. ">KeyFrame</a> en estas situaciones:</p><ul>
<li>Hay un cierre de bucle en curso</li>
<li>Desde la última relocalización no pasaron todavía una cantidad mínima de frames mMaxFrames.</li>
</ul>
<p>Este método se invoca solamente desde <a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#af1f2c9c533642d8c33854540e90d1918" title="Es la máquina de estados del tracking. ">Track()</a>. </p>

</div>
</div>
<a id="acd4ea9e7097bed16428a4b78fe4b6a67"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool ORB_SLAM2::Tracking::Relocalization </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Dispara una relocalización. </p>

</div>
</div>
<a id="a899967ca49b1c3446854ecce3873323c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ORB_SLAM2::Tracking::Reset </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Reinicia el sistema. </p>
<p>Olvida el mapa y demás y pasa al estado NOT_IMAGE_YET </p>

</div>
</div>
<a id="a451c0e5372c24645c7634fcebc8fa847"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ORB_SLAM2::Tracking::SearchLocalPoints </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Invocado por TrackLocalMap. </p>
<p>1- Recorre los puntos 3D asociados al cuadro actual, incrementa su visibilidad y marca que fueron vistos por última vez desde este cuadro. 2- Cuenta los puntos que deberían haber sido vistos y no lo fueron. 3- Si hay puntos no vistos, realiza un SearchByProjection </p>

</div>
</div>
<a id="a95061551f3756408221df3b1a996b777"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ORB_SLAM2::Tracking::SetLocalMapper </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html">LocalMapping</a> *&#160;</td>
          <td class="paramname"><em>pLocalMapper</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Registra el objeto de <a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html" title="LocalMapping tiene una única instancia ejecutando el método Run en su propio thread. ">LocalMapping</a>. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">pLocalMapper</td><td>Objeto de mapeo local. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a92b878e0559740646f8b1c635ac068dc"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ORB_SLAM2::Tracking::SetLoopClosing </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html">LoopClosing</a> *&#160;</td>
          <td class="paramname"><em>pLoopClosing</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Registra el objeto de <a class="el" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html" title="Cierre de bucles. ">LoopClosing</a>. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">pLoopClosing</td><td>Objeto de cierre de bucle. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ac86c2461ac6cf3bec906759f4fbea15c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ORB_SLAM2::Tracking::SetViewer </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_viewer.html">Viewer</a> *&#160;</td>
          <td class="paramname"><em>pViewer</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Registra el objeto de visualización. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">pViewer</td><td>Visualizador. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="af1f2c9c533642d8c33854540e90d1918"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ORB_SLAM2::Tracking::Track </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Es la máquina de estados del tracking. </p>
<p>Este método implementa el autómata finito cuya variable de estado es mState, y sus valores se definen en el enum eTrackingState. La variable informa sobre los diversos estados para la inicialización primero, y luego sobre los estados de operación. ORB-SLAM opera principalmente en el estado WORKING.</p>
<p>Autómata: -SYSTEM_NOT_READY: El sistema no está listo, algunos componentes se están inicializando. -NO_IMAGES_YET: Estado inicial. GrabImage se invoca la primera vez con una imagen, y pasa al estado siguiente. Es el único momento en que todavía no existe mLastFrame. -NOT_INITIALIZED: Recibió la primera imagen y existe un mLastFrame, e invoca repetidamente la inicialización <a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#a7e81c68bb6ced27fcbfa2edec38ef6e0" title="Incovado por el autómata Track() para intentar inicializar. ">MonocularInitialization()</a>, hasta que logra inicializar y pasa a OK. -OK: El tracking operando normalmente. En orb-slam se llamaba WORKING. -LOST: Perdido, si ocurre en los primeros 5 frames, reinicia con <a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#a899967ca49b1c3446854ecce3873323c" title="Reinicia el sistema. ">Reset()</a>, y si no sigue intentando relocalizar.</p>
<p>mState tiene el estado actual, mLastProcessedState tiene el estado de la ejecución anterior. Si el sistema no está inicializado, se invoca MonocularInitialization.</p>
<p>Inicialización: NOT_INITIALIZED El estado NOT_INITIALIZED también indica que está intentando inicializar. Usa variables propias para el autómata de inicialización. Primero busca un cuadro de referencia, el primero con suficientes features para la inicialización (100 o más) Luego se queda macheando con cuadros posteriores. Mientras consiga suficientes macheos, intenta la inicialización invocando mpInitializer-&gt;Initialize, que retorna con éxito o fallo. Si tiene éxito pasa al estado siguiente, OK. Es la única vía para salir de la inicialización. Si falla continúa macheando cuadros posteriores. Si continúa fallando, la cantidad de macheos irá decreciendo y si baja del mínimo busca un nuevo cuadro de referencia.</p>
<p>En modo normal (estado OK con tracking y mapeo) se invocan TrackWithMotionModel, TrackLocalMap y luego se decide si es momento de agregar un nuevo <a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame.html" title="Cuadro clave, keyframe. ">KeyFrame</a>.</p>
<p>Track Se invoca únicamente desde GrabImageMonocular, podría ser parte de ese método. </p>

</div>
</div>
<a id="af670c614f4e10d58c9f7aad9865b5c08"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool ORB_SLAM2::Tracking::TrackLocalMap </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Actualiza el mapa y realiza el tracking. </p>
<p>Se invoca cuando el sistema está ubicado: tiene pose de cámara y lleva el rastro de varios puntos en el cuadro. Actualiza el mapa local a partir de la pose estimada: busca puntos del mapa que se deberían observar desde esa pose, usando SearchReferencePointsInFrustum(). Optimiza la pose a partir de los puntos observados, obteniendo la lista de inliers. Incrementa la cantidad de veces que estos puntos fueron observados, para estadística. Para retornar con éxito exige 30 puntos inliers, o 50 (más exigente) si hubo una relocalización reciente. </p>

</div>
</div>
<a id="a737c5409c93844353561a0fe724ed1c2"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool ORB_SLAM2::Tracking::TrackReferenceKeyFrame </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Una manera de hacer tracking, alternativa a TrackWithMotionModel. </p>
<p>Intenta obtener la pose de la cámara respecto del keyframe de referencia, a partir de los puntos observados. El macheo se realiza por BoW. Se usa si falla TrackWithMotionModel, o si no hay "motion model", por ejemplo porque recién se inicializa o se realizó una relocalización. Requiere 15 macheos como mínimo, si no, falla. Invocado sólo desde Track. </p>

</div>
</div>
<a id="aca19f1d69b30a6c6e49281d422ac8298"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool ORB_SLAM2::Tracking::TrackWithMotionModel </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>SfM. </p>
<p>Función principal, que determina la performance del sistema. Rastrea los puntos de la imagen en el mapa, macheándolos con matcher.SearchByProjection(), que extiende el macheo consecutivo desde lastFrame a currentFrame, asociando los puntos 3D a los puntos singulares del cuadro actual. Si no logra 20 macheos, falla, retorna false. Con 20 o más puntos macheados calcula la nueva pose con <a class="el" href="class_o_r_b___s_l_a_m2_1_1_optimizer.html#a7415d78b8a2323b88e108fa1ea3bf2d3" title="Cómputo de la pose de un cuadro. ">Optimizer::PoseOptimization()</a> y quita los outliers del frame. Si no quedan al menos 10 puntos, retorna false indicando la falla.</p>
<p>Esta función se invoca exclusivamente desde Track, según el autómata finito, siempre en el estado OK. </p>

</div>
</div>
<a id="aa84a20277d5bd022b527d79a58830bc5"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ORB_SLAM2::Tracking::UpdateLastFrame </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Calcula la pose de mLastFrame respecto del keyframe de referencia, y la registra en mLastFrame con .SetPose. </p>
<p>Esta función se invoca exclusivamente desde TracWithMotionModel. Se empaquetó en una función aparte porque, para casos diferentes de monocular, hay mucho más trabajo. </p>

</div>
</div>
<a id="a42bed56bbbe8282eb77733e7168d8599"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ORB_SLAM2::Tracking::UpdateLocalKeyFrames </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a22723e9972c18a888dd51a82eec27b0a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ORB_SLAM2::Tracking::UpdateLocalMap </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Actualiza los puntos y keyframes en el mapa local. </p>
<p>Invoca los métodos UpdateLocalKeyFrames y UpdateLocalPoints. Estos métodos sólo se invocan desde aquí, podrían ser parte de UpdateLocalMap. Invocada sólo desde TrackLocalMap </p>

</div>
</div>
<a id="a25843575116bf18c065d6cc7645f5b26"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ORB_SLAM2::Tracking::UpdateLocalPoints </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Rehace la lista de puntos del mapa local. </p>
<p>La lista de puntos es mvpLocalMapPoints. Recorre la lista de keyframes mvpLocalKeyFrames para recorrer sus puntos obtenidos con GetMapPointMatches(). Luego de un proceso de descarte, suma el punto a la lista. Queda por interpretar los criterios de descartes.</p>
<p>Primero se invoca UpdateReferenceKeyFrames, que obtiene una versión ampliada de los keyframes que observan los puntos del mapa local, y luego se invoca UpdateReferencePoints, que obtiene la lista de puntos observador por esos KeyFrames, ampliando el mapa local.</p>
<p>Invocada sólo desde UpdateLocalMap </p>

</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="ab87e93e3430d5a50dbca87c49955a666"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ORB_SLAM2::Tracking::camaraModo</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Modo de cámara. </p>
<p>0 normal, viene con orb-slam, la común de opencv. 1 fisheye sin distorsión, sólo aplica la deformación de la matriz intrínseca según el modelo de fisheye (equidistance projection). Su valor proviene del archivo de configuración, y se pasa a <a class="el" href="class_o_r_b___s_l_a_m2_1_1_frame.html" title="Frame representa un cuadro, una imagen, con los puntos singulares detectados. ">Frame</a>. </p>

</div>
</div>
<a id="a8de5f87734670485f6b6097b14dd1fcb"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">float ORB_SLAM2::Tracking::mbf</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Leído del archivo de configuración, parte de los parámetros de calibración, pasado al constructor de <a class="el" href="class_o_r_b___s_l_a_m2_1_1_frame.html" title="Frame representa un cuadro, una imagen, con los puntos singulares detectados. ">Frame</a>. </p>
<p>No usado en monocular. Ya se eliminó el código que lo usaba. Se deja para hasta que se cambien los constructores de <a class="el" href="class_o_r_b___s_l_a_m2_1_1_frame.html" title="Frame representa un cuadro, una imagen, con los puntos singulares detectados. ">Frame</a> y <a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame.html" title="Cuadro clave, keyframe. ">KeyFrame</a>. </p>

</div>
</div>
<a id="ae8c6db8ff320af10acacd5078a0801f6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ORB_SLAM2::Tracking::mbOnlyTracking</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Flag indicador de modo <a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html" title="Objeto único que se ejecuta en su propio Trhead, y se inicia con Run(). ">Tracking</a> (true) o tracking y mapping (false). </p>

</div>
</div>
<a id="a01522faf940cc80402f0750b0d90ecf2"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool ORB_SLAM2::Tracking::mbRGB</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a44ad79261b565797bdf53d503f6defca"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool ORB_SLAM2::Tracking::mbVO</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Flag de odometría visual. </p>
<p>Es true cuando hay pocos macheos con puntos del mapa. El sistema entra en modo de odometría visual para adivinar en qué lugar del mapa está, mientras intenta relocalizar. La diferencia con el tracking normal es que sólo intenta <a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#aca19f1d69b30a6c6e49281d422ac8298" title="SfM. ">Tracking::TrackWithMotionModel</a>, y no intenta <a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#a737c5409c93844353561a0fe724ed1c2" title="Una manera de hacer tracking, alternativa a TrackWithMotionModel. ">Tracking::TrackReferenceKeyFrame</a>. Además, al mismo tiempo que realiza VO, intenta relocalizar.</p>
<p>TrackWithMotionModel pasa a odometría visual cuando no hace mapping (onlyTracking) y visualiza menos de 10 puntos del mapa. </p>

</div>
</div>
<a id="ad21299ab1995c8fb7115bda57773d307"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_frame.html">Frame</a> ORB_SLAM2::Tracking::mCurrentFrame</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Cuadro actual. </p>

</div>
</div>
<a id="a7df0851817d1a1345324c196b6a79c3a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">cv::Mat ORB_SLAM2::Tracking::mDistCoef</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Coeficientes de distorsión del modelo pihole estándar de OpenCV. </p>
<p>Mat de 8x1 CV_32F (float).</p>
<p>Contiene los coeficientes de distorsión radial y tangencial, para ser usados exclusivamente por cv::undistortPoints en <a class="el" href="class_o_r_b___s_l_a_m2_1_1_frame.html#a2a97fc690d8c1cd5e975d19440a31657" title="Calcula los puntos singulares de mvKeysUn. ">Frame::UndistortKeyPoints</a> y <a class="el" href="class_o_r_b___s_l_a_m2_1_1_frame.html#a420f0369833f856df1973410ea39b335" title="Calcula los vértices del cuadro andistorsionado. ">Frame::ComputeImageBounds</a>, ambos ejecutados solamente durante la construcción del <a class="el" href="class_o_r_b___s_l_a_m2_1_1_frame.html" title="Frame representa un cuadro, una imagen, con los puntos singulares detectados. ">Frame</a>.</p>
<p>Su contenido se toma de la configuración, y podría cambiarse vía <a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#a7be9bebf51fda1413d253224cdacf7cd" title="Comando para cambiar la calibración. ">Tracking::ChangeCalibration</a>, que no se usa en esta implementación. </p>

</div>
</div>
<a id="af7ef78c9eed81f0701a1d12b3f377875"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">cv::Mat ORB_SLAM2::Tracking::mImGray</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Imagen del cuadro actual, recién convertida a grises. </p>
<p>GrabImageMonocular recibe la imagen como Mat, y si es a color la convierte a grises; la guarda en mImGray. </p>

</div>
</div>
<a id="a691ba65eb45f76829c8a2622f42ba446"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_frame.html">Frame</a> ORB_SLAM2::Tracking::mInitialFrame</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Primer cuadro para la inicialización. </p>
<p>La triangulación de puntos para el mapa inicial se realiza entre dos cuadros:</p><ul>
<li>mCurrentFrame</li>
<li>mInitialFrame</li>
</ul>
<p>Una vez que el sistema se inicializó, mInitialFrame no se vuelve a usar. </p>

</div>
</div>
<a id="a6926ae3c49c09bf9f402d13900740405"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">cv::Mat ORB_SLAM2::Tracking::mK</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Matriz intrínseca, de cámara, de calibración K. </p>
<p>Mat de 3x3 CV_32F (float). </p>

</div>
</div>
<a id="a4f0a80cfb3ddadcb43d7745d15ac9f35"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_frame.html">Frame</a> ORB_SLAM2::Tracking::mLastFrame</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a98be1e579a7e9271449d079c4f3c8769"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#a3995b5e23b910c6ee30b7fe21732fe36">eTrackingState</a> ORB_SLAM2::Tracking::mLastProcessedState</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Estado anterior al actual. </p>
<p>Último estado que fue procesado por completo. </p>

</div>
</div>
<a id="aca83e100e47cfcc0cba1bcfac72764cc"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">list&lt;bool&gt; ORB_SLAM2::Tracking::mlbLost</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ae867f703e70c18b7ff0798191807cb4d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">list&lt;double&gt; ORB_SLAM2::Tracking::mlFrameTimes</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ad214f6515a2cf4996d0c7765d9de73a8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">list&lt;<a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame.html">KeyFrame</a>*&gt; ORB_SLAM2::Tracking::mlpReferences</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="aadc2690944688adbebeef4a60bdf3cad"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">list&lt;<a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html">MapPoint</a>*&gt; ORB_SLAM2::Tracking::mlpTemporalPoints</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a5e0bb2d9fe720c4f4dc9eef57ad1f168"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">list&lt;cv::Mat&gt; ORB_SLAM2::Tracking::mlRelativeFramePoses</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Listas para registrar la trayectoria de la cámara, para guardarla al terminar la aplicación. </p>

</div>
</div>
<a id="a8a96fe16c7ed5c29d8714c1af036f1da"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int ORB_SLAM2::Tracking::mMaxFrames</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a53369ce9ebf152a1a76e93445821e395"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int ORB_SLAM2::Tracking::mMinFrames</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="abe5270bc94032722923f43efe7a7bac6"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int ORB_SLAM2::Tracking::mnLastKeyFrameId</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="af95975f569dcc3e378c556b8199604b2"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int ORB_SLAM2::Tracking::mnLastRelocFrameId</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="ad58b66226a6345581227560aae2ea72f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int ORB_SLAM2::Tracking::mnMatchesInliers</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Sólo para RGB-D. </p>

</div>
</div>
<a id="afc0759bfbd1d8d83e86c9d677a35429b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_frame_drawer.html">FrameDrawer</a>* ORB_SLAM2::Tracking::mpFrameDrawer</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a8d25e231894baf85a6a48ab57ce0ddb3"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_o_r_bextractor.html">ORBextractor</a>* ORB_SLAM2::Tracking::mpIniORBextractor</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a9194420033fe0d556053685844a534be"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_initializer.html">Initializer</a>* ORB_SLAM2::Tracking::mpInitializer</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Inicializador, responsable de la triangulación de los primeros puntos del mapa. </p>
<p>Sólo se usa en modo monocular. El inicializador es modular, por eso en lugar de estar incorporado en <a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html" title="Objeto único que se ejecuta en su propio Trhead, y se inicia con Run(). ">Tracking</a> se proporciona en un objeto <a class="el" href="class_o_r_b___s_l_a_m2_1_1_initializer.html" title="Inicializador de mapa en modo monocular. ">Initializer</a>, a ese efecto. </p>

</div>
</div>
<a id="a0ee7e13527e3bb18adb24bc511fd5800"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame_database.html">KeyFrameDatabase</a>* ORB_SLAM2::Tracking::mpKeyFrameDB</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="aa833de1f76843c64dbcc1631c12de7fd"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame.html">KeyFrame</a>* ORB_SLAM2::Tracking::mpLastKeyFrame</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a83692a6e9626c3c11b329d3b0a35c2f1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html">LocalMapping</a>* ORB_SLAM2::Tracking::mpLocalMapper</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Público para que lo pueda ver <a class="el" href="class_o_r_b___s_l_a_m2_1_1_viewer.html" title="Viewer representa la interfaz de usuario. ">Viewer</a> al serializar mapas. </p>

</div>
</div>
<a id="aed45d56071fcbba3db0552726c897e0d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html">LoopClosing</a>* ORB_SLAM2::Tracking::mpLoopClosing</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="acc0b5ae59012946da8238d84a331d72c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map.html">Map</a>* ORB_SLAM2::Tracking::mpMap</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Mapa general. </p>

</div>
</div>
<a id="a3fb103211ff7b984910943f0975d5ceb"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_drawer.html">MapDrawer</a>* ORB_SLAM2::Tracking::mpMapDrawer</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="abd41b4020d02e8ca272263964ae400b2"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_o_r_bextractor.html">ORBextractor</a>* ORB_SLAM2::Tracking::mpORBextractorLeft</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Extractores de cámara. </p>
<p>Right se usa solamente en estéreo; monocular usa solamente Left. Ini es una versión más exigente, que durante la inicialización intenta recuperar el doble de features y macheos que lo normal. </p>

</div>
</div>
<a id="a79358a4f15c71538e37e874a5646f43e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespace_o_r_b___s_l_a_m2.html#a2fafba714858cab1bb18d438e2e83c5d">ORBVocabulary</a>* ORB_SLAM2::Tracking::mpORBVocabulary</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="ade9676c7c26eb653beddaa05b37ecc08"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame.html">KeyFrame</a>* ORB_SLAM2::Tracking::mpReferenceKF</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a1ab3d15e53005d5147620b0ee37c33ed"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_system.html">System</a>* ORB_SLAM2::Tracking::mpSystem</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Sistema. </p>
<p>Única instancia. </p>

</div>
</div>
<a id="a4952ab24b73effdbba6266e2fb26548e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_viewer.html">Viewer</a>* ORB_SLAM2::Tracking::mpViewer</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a18bffeb950dd18e5d74807cd9741c013"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ORB_SLAM2::Tracking::mSensor</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Tipo de sensor: monocular, estéreo o rgbd. </p>
<p>Siempre <a class="el" href="class_o_r_b___s_l_a_m2_1_1_system.html#a3f14b84bb9663e1129e649e592bd14cfad1e5840d6aeaa77d25724ea0b27437cd">System::MONOCULAR</a> en esta versión. </p>

</div>
</div>
<a id="a37cadc53a335fd802fed2fd9b24e93e1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#a3995b5e23b910c6ee30b7fe21732fe36">eTrackingState</a> ORB_SLAM2::Tracking::mState</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Estado del autómata finito del tracking. </p>
<p>mState adopta los valores del enum eTrackingState. </p>

</div>
</div>
<a id="aded3124bdf36aba88411327024a7c2d3"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">float ORB_SLAM2::Tracking::mThDepth</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Sólo para estéreo, el código actual no lo usa, sólo se pasa entre constructores a <a class="el" href="class_o_r_b___s_l_a_m2_1_1_frame.html" title="Frame representa un cuadro, una imagen, con los puntos singulares detectados. ">Frame</a> y a <a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame.html" title="Cuadro clave, keyframe. ">KeyFrame</a>. </p>

</div>
</div>
<a id="a9ee7c26c1db845fef73c55ee0bb5c9f2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt;cv::Point2f&gt; ORB_SLAM2::Tracking::mvbPrevMatched</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Vector con los matches anteriores, para inicialización. </p>

</div>
</div>
<a id="ac2283c13ccf08207c90a6a163d8dbe3c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">cv::Mat ORB_SLAM2::Tracking::mVelocity</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Rototraslación del modelo de movimiento. </p>
<p>Es una matriz de 4x4 como Tcw, surge de multiplicar Tcw del cuadro actual con Twc del anterior. El resultado es la rototraslación relativa del último cuadro respecto del anterior. </p>

</div>
</div>
<a id="ace08a986d9cbe3fe578c189242b94489"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt;int&gt; ORB_SLAM2::Tracking::mvIniLastMatches</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Agregado, imagen de entrada para visualización. </p>
<p>Se registra en GrabImage Variables de inicialización. Luego de la inicialización, estos valores están en el <a class="el" href="class_o_r_b___s_l_a_m2_1_1_frame.html" title="Frame representa un cuadro, una imagen, con los puntos singulares detectados. ">Frame</a>. Vector con los matches anteriores, para inicialización. </p>

</div>
</div>
<a id="a1c89fa1b3512238f15283857ed94c79a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt;int&gt; ORB_SLAM2::Tracking::mvIniMatches</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Vector con los matches de inicialización. </p>

</div>
</div>
<a id="adced44c2c047c18f3db6c7bfd7b289f0"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt;cv::Point3f&gt; ORB_SLAM2::Tracking::mvIniP3D</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Vector con los puntos 3D iniciales. </p>

</div>
</div>
<a id="a46ade9f7ec2c89544ae77f2906000b3a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt;<a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame.html">KeyFrame</a>*&gt; ORB_SLAM2::Tracking::mvpLocalKeyFrames</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Lista del keyframes locales, parte del mapa local. </p>

</div>
</div>
<a id="a89074acc520094ba0d0fc7f4c0f8cf09"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt;<a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html">MapPoint</a>*&gt; ORB_SLAM2::Tracking::mvpLocalMapPoints</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Mapa local, lista de puntos 3D. </p>

</div>
</div>
<a id="a3b4c19b9a377649cb89a4382320be28b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ORB_SLAM2::Tracking::param = 100</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Agregado: parámetro del trackbar de la ventana que muestra el cuadro actual. </p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>/home/alejandro/Desarrollo eclipse/os1/include/<a class="el" href="_tracking_8h_source.html">Tracking.h</a></li>
<li>/home/alejandro/Desarrollo eclipse/os1/src/<a class="el" href="_tracking_8cc.html">Tracking.cc</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="namespace_o_r_b___s_l_a_m2.html">ORB_SLAM2</a></li><li class="navelem"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html">Tracking</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
  </ul>
</div>
</body>
</html>
